package com.ruoyi.test.config;

import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import org.springframework.stereotype.Component;

import java.util.List;

class SQL注入器 {
    @Component
    public class MySqlInjector extends DefaultSqlInjector {
        public MySqlInjector() {
            super();
        }
        @Override
        public List<AbstractMethod> getMethodList(Class<?> mapperClass,TableInfo tableInfo) {
            List<AbstractMethod> methods = super.getMethodList(mapperClass,tableInfo);
            //真实批量新增，字段注解上不等于FieldFill.DEFAULT的字段才会插入
//            methods.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.DEFAULT));
            //更新操作时，无论实体对象的某些字段是否有变化，都会强制更新这些字段，字段注解上不等于FieldFill.INSERT的字段才会更新
//                methods.add(new AlwaysUpdateSomeColumnById(i-> i.getFieldFill() != FieldFill.INSERT));
            return methods;
        }
    }
}
